package com.cmeduSystem.common.flow.dto;

import com.cmeduSystem.common.core.validator.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.util.Date;

/**
 * 流程委托用户的DTO对象。
 *
 * @author xulei
 * @date 2025-09-04
 */
@Data
@Schema(description = "流程委托用户DTO对象")
public class FlowDelegateUserDto {

    /**
     * 主键Id。
     */
    @Schema(description = "主键Id")
    @NotNull(message = "数据验证失败，主键不能为空！", groups = {UpdateGroup.class})
    private Long id;

    /**
     * 委托用户的登录名，多个用户之间逗号分隔。
     */
    @Schema(description = "委托用户的登录名，多个用户之间逗号分隔")
    @NotBlank(message = "委托用户不能为空")
    private String delegateUsers;

    /**
     * 委托范围。可取值user,dept,post,dept_post,role，多个值之间逗号分隔。
     */
    @Schema(description = "委托范围")
    @NotBlank(message = "委托范围不能为空")
    private String delegateScope;

    /**
     * 流程定义标识，多个流程之间逗号分隔。
     */
    @Schema(description = "流程定义标识，多个流程之间逗号分隔")
    private String processDefinitionKeys;

    /**
     * 开始时间。
     */
    @Schema(description = "开始时间")
    @NotNull(message = "开始时间不能为空")
    private Date startTime;

    /**
     * 结束时间。
     */
    @Schema(description = "结束时间")
    @NotNull(message = "结束时间不能为空")
    private Date endTime;

    /**
     * 委托说明。
     */
    @Schema(description = "委托说明")
    private String memo;
} 